#ifndef PERSON_H_
#define PERSON_H_

#if 0
需求：
	定义一个Person类，包含属性：姓名，年龄，性别；写好相关的方法，能够构造的时候初始化或者后续修改属性值 
	定义一个Runnable抽象类，包含纯虚函数run。 
	定义一个Athlete类分别继承Person类和Runnable类，重写run函数（能在调用run时打印 Athlete的姓名和跑步时的速度（生成随机数即可））。 
	在主函数中创建一个Athlete对象，
	尝试：使用Person指针指向该对象然后调用run函数 
	尝试：使用Runnable指针指向该对象然后调用run函数。 
	哪些是可行的，哪些是不可行的？为什么？原因在注释中用明确的文字进行说明。
#endif
#include <string>
using namespace std;

class Person{
private:
	string 	name;
	int 	year;
	bool 	isMale;
public:
	//set get 
	const string& getName() const { return this->name; }

	Person(const string& name, int year, bool isMale);
};

class Runnable{
public:
	virtual void run() = 0;
};

class Athlete : public Person, public Runnable{
public:
	Athlete(const string& name, int year, bool isMale);
	void run();
};

#endif
